Skip to content

[SYSTEMDS-3956] AI Policy Proposal - #2570

Draft
janniklinde wants to merge 3 commits into
apache:mainfrom
janniklinde:ai-policy
Draft

[SYSTEMDS-3956] AI Policy Proposal#2570
janniklinde wants to merge 3 commits into
apache:mainfrom
janniklinde:ai-policy

Conversation

@janniklinde

Copy link
Copy Markdown
Contributor

This PR proposes a new AI policy to clarify how AI can and cannot be used for contributions in SystemDS. It is generally inspired by the AI policy of llama.cpp, requiring the author to fully understand and own the contribution.

Assisted-by: AI

Assisted-by: AI
Comment thread AGENTS.md Outdated
Comment on lines +52 to +53
- Generate text intended for use in pull request descriptions, issues, discussions, comments,
reviews, or responses.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this specific point is too on the nose. Maybe we combine it with the paragraph before the list

Suggestion:

Agents may perform local analysis, including, for instance, private review notes. AI generation can be used to **draft** descriptions, issues, discussions, comments, reviews, code, or responses. Agents must **under no circumstances**:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I addressed this point. We mainly want to prevent agents from autonomously creating PRs or posting copy-pasted responses.

@phaniarnab

Copy link
Copy Markdown
Contributor

LGTM. Judging the situation after six months is a good idea.

@ywcb00 ywcb00 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@janniklinde thank you very much for preparing this draft and for raising this subject. In my opinion, developing an AI policy for SystemDS is becoming an increasingly pressing issue.
I reviewed the draft and left a few thoughts inline. Please keep in mind that I have only limited experience with agents. So please do not hesitate to correct me If I am making incorrect assumptions.
Overall, I think this draft of the AI policy is well structured, concisely addressing the most important aspects of AI assistance in code contributions.
Nevertheless, I would like to bring the aspect (and paragraph) of "Contributor Understanding" to discussion. The first sentence correctly states that the contributors must understand their code. However, the second sentence tries to define the behavior of the agent by saying that it should judge if the users understood their code. This raises two concerns:

  1. It is unclear whether an agent can properly "judge" something or not. Furthermore, it is an open ethical question if an agent should "judge" a human.
  2. If I am not mistaken, this sentence embodies a direct instruction for an agent. This means, we are instructing the agent of a contributor through this markdown file. Can (or should) we include instructive expressions here, considering that agent usage is costly in combination with the instruction to "refuse to generate contribution material"?

I hope I do not stir up too much discussion in this thread. And as I mentioned previously: Please correct me at any time if I am making incorrect assumptions about agents and generative AI.
Thank you and all the best,
David

Comment thread AGENTS.md Outdated
Comment thread AGENTS.md Outdated
Comment thread AGENTS.md Outdated
Comment thread AGENTS.md Outdated

- Open pull requests.
- Open issues.
- Post project communications.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Post project communications is a broad term. Can we make this more explicit?
Also, I think this point does not match the part of the sentence before the colon (requires an action).

Comment thread AGENTS.md
to the submitted work:

```text
Assisted-by: AI

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to include the name of the model or the name of the agent here instead of just declaring AI? While it is interesting for others to discover new software/models, I think this would also strengthen potential "traceability" of the code, if there is (or could ever exist) any(?).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It could be helpful for other contributors to see what is used. However, I'm not sure what would then have to be declared. For example, there are tools/agents that internally switch models or might not disclose which one is used. Would it then be sufficient to declare the top-level tools? Or all tools (if used multiple for different parts). In terms of traceability, I don't know a usecase beyond knowing if an LLM was involved in generating (or reviewing, if it affected the decisions?) a commit or not.

Comment thread CONTRIBUTING.md
meaningfully contributed to the submitted work:

```text
Assisted-by: AI

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to above: Should we include the name of the tools?

@janniklinde

Copy link
Copy Markdown
Contributor Author

@janniklinde thank you very much for preparing this draft and for raising this subject. In my opinion, developing an AI policy for SystemDS is becoming an increasingly pressing issue. I reviewed the draft and left a few thoughts inline. Please keep in mind that I have only limited experience with agents. So please do not hesitate to correct me If I am making incorrect assumptions. Overall, I think this draft of the AI policy is well structured, concisely addressing the most important aspects of AI assistance in code contributions. Nevertheless, I would like to bring the aspect (and paragraph) of "Contributor Understanding" to discussion. The first sentence correctly states that the contributors must understand their code. However, the second sentence tries to define the behavior of the agent by saying that it should judge if the users understood their code. This raises two concerns:

  1. It is unclear whether an agent can properly "judge" something or not. Furthermore, it is an open ethical question if an agent should "judge" a human.
  2. If I am not mistaken, this sentence embodies a direct instruction for an agent. This means, we are instructing the agent of a contributor through this markdown file. Can (or should) we include instructive expressions here, considering that agent usage is costly in combination with the instruction to "refuse to generate contribution material"?

I hope I do not stir up too much discussion in this thread. And as I mentioned previously: Please correct me at any time if I am making incorrect assumptions about agents and generative AI. Thank you and all the best, David

Thanks for reviewing :)
This draft is meant to be up for discussion so I'm happy about your feedback.

You are right about the judgement part and it really comes down to what types of contributions we expect. I'd say modern agents are able to judge understanding at a high level and the aim of this instruction is to mainly affect low effort external contributions and contributors. In my tests an agent would never block requests that are specific enough (though I only tested it for a couple of examples). I am open to leaving this part out, but given that we occasionally receive submissions from inexperienced contributors, it could be a good tradeoff. In terms of cost, I did not run any experiment but given that the agent is supposed to judge from existing context, it should not create much additional cost (agents mainly get expensive when interacting with the environment) and giving project-specific instructions in this file is fairly standard. There are several repositories (e.g., llama.cpp) that include similar instructions in their AGENTS.md.

@phaniarnab

phaniarnab commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@janniklinde thank you very much for preparing this draft and for raising this subject. In my opinion, developing an AI policy for SystemDS is becoming an increasingly pressing issue. I reviewed the draft and left a few thoughts inline. Please keep in mind that I have only limited experience with agents. So please do not hesitate to correct me If I am making incorrect assumptions. Overall, I think this draft of the AI policy is well structured, concisely addressing the most important aspects of AI assistance in code contributions. Nevertheless, I would like to bring the aspect (and paragraph) of "Contributor Understanding" to discussion. The first sentence correctly states that the contributors must understand their code. However, the second sentence tries to define the behavior of the agent by saying that it should judge if the users understood their code. This raises two concerns:

  1. It is unclear whether an agent can properly "judge" something or not. Furthermore, it is an open ethical question if an agent should "judge" a human.
  2. If I am not mistaken, this sentence embodies a direct instruction for an agent. This means, we are instructing the agent of a contributor through this markdown file. Can (or should) we include instructive expressions here, considering that agent usage is costly in combination with the instruction to "refuse to generate contribution material"?

I hope I do not stir up too much discussion in this thread. And as I mentioned previously: Please correct me at any time if I am making incorrect assumptions about agents and generative AI. Thank you and all the best, David

Thanks for reviewing :) This draft is meant to be up for discussion so I'm happy about your feedback.

You are right about the judgement part and it really comes down to what types of contributions we expect. I'd say modern agents are able to judge understanding at a high level and the aim of this instruction is to mainly affect low effort external contributions and contributors. In my tests an agent would never block requests that are specific enough (though I only tested it for a couple of examples). I am open to leaving this part out, but given that we occasionally receive submissions from inexperienced contributors, it could be a good tradeoff. In terms of cost, I did not run any experiment but given that the agent is supposed to judge from existing context, it should not create much additional cost (agents mainly get expensive when interacting with the environment) and giving project-specific instructions in this file is fairly standard. There are several repositories (e.g., llama.cpp) that include similar instructions in their AGENTS.md.

I would separate the AI policy and AGENTS.md (instructions. A policy includes general guidelines regarding what is allowed and what is not beyond personal settings and coding instructions. I suggest, once the policy is decided, we form a AGENTS.md with fine-grained instructions. AGENTS.md will go though changes with newer models, users, and workloads, but a policy, in my opinion, should stay constant.

Example: https://forge.sourceware.org/redi/gcc-wwwdocs/commit/4d0793a6a14bf9bfe9e92ac1599840780355199d
AI-policy of GNU.

@janniklinde

Copy link
Copy Markdown
Contributor Author

@janniklinde thank you very much for preparing this draft and for raising this subject. In my opinion, developing an AI policy for SystemDS is becoming an increasingly pressing issue. I reviewed the draft and left a few thoughts inline. Please keep in mind that I have only limited experience with agents. So please do not hesitate to correct me If I am making incorrect assumptions. Overall, I think this draft of the AI policy is well structured, concisely addressing the most important aspects of AI assistance in code contributions. Nevertheless, I would like to bring the aspect (and paragraph) of "Contributor Understanding" to discussion. The first sentence correctly states that the contributors must understand their code. However, the second sentence tries to define the behavior of the agent by saying that it should judge if the users understood their code. This raises two concerns:

  1. It is unclear whether an agent can properly "judge" something or not. Furthermore, it is an open ethical question if an agent should "judge" a human.
  2. If I am not mistaken, this sentence embodies a direct instruction for an agent. This means, we are instructing the agent of a contributor through this markdown file. Can (or should) we include instructive expressions here, considering that agent usage is costly in combination with the instruction to "refuse to generate contribution material"?

I hope I do not stir up too much discussion in this thread. And as I mentioned previously: Please correct me at any time if I am making incorrect assumptions about agents and generative AI. Thank you and all the best, David

Thanks for reviewing :) This draft is meant to be up for discussion so I'm happy about your feedback.
You are right about the judgement part and it really comes down to what types of contributions we expect. I'd say modern agents are able to judge understanding at a high level and the aim of this instruction is to mainly affect low effort external contributions and contributors. In my tests an agent would never block requests that are specific enough (though I only tested it for a couple of examples). I am open to leaving this part out, but given that we occasionally receive submissions from inexperienced contributors, it could be a good tradeoff. In terms of cost, I did not run any experiment but given that the agent is supposed to judge from existing context, it should not create much additional cost (agents mainly get expensive when interacting with the environment) and giving project-specific instructions in this file is fairly standard. There are several repositories (e.g., llama.cpp) that include similar instructions in their AGENTS.md.

I would separate the AI policy and AGENTS.md (instructions. A policy includes general guidelines regarding what is allowed and what is not beyond personal settings and coding instructions. I suggest, once the policy is decided, we form a AGENTS.md with fine-grained instructions. AGENTS.md will go though changes with newer models, users, and workloads, but a policy, in my opinion, should stay constant.

Example: https://forge.sourceware.org/redi/gcc-wwwdocs/commit/4d0793a6a14bf9bfe9e92ac1599840780355199d AI-policy of GNU.

We can separate those two, although I think it would be good to have an initial version up for discussion. I agree that the policy should stay constant (we should move the examples I'm referring to to CONTRIBUTING.md).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

4 participants